# 定义编译器和编译选项
CXX = g++
CXXFLAGS = -Wall -I./util -I./util/CircularReference

# 获取src目录下的所有.cpp文件
SRCS = $(wildcard src/*.cpp)
# 将每个.cpp文件对应的可执行文件放在bin目录下
BINS = $(SRCS:src/%.cpp=bin/%)

# 默认规则
all: $(BINS)

# 链接规则
bin/%: src/%.cpp
	$(CXX) $(CXXFLAGS) $< -o $@

# 创建bin目录
$(BINS): | bin

bin:
	mkdir -p bin

# 清理规则
clean:
	rm -rf bin

.PHONY: all clean